JV

[PEDIDO] Arrumar uma action minha

Por jvcasarin, 30 de ago. de 2015 em Scripts

action
ajuda
help
pedido
arrumar
script
storage
resolvido
21
2.6k
jvcasarinJ
30 de agosto de 2015 às 04:05

Bom gente, criei um outro tópico, pedindo ajuda em um movement, em que se o player tiver a storage 18597, ele passa pelo tile, se não tiver a storage, ele não passa, ai vai o script do movement:

function onStepIn(cid, item, position, fromPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, storage) <= 0 then
doPlayerSendCancel(cid, "You're not a VIP player.")
doTeleportThing(cid, fromPosition)
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
return true
else
doPlayerSendTextMessage(cid, "Welcome to the VIP Area!")
doSendMagicEffect(getThingPos(cid), 14)
end
return true
end

Criei uma action para quando o player usar X item, adiciona a storage à ele, está funcionando normalmente, porém quando o player tem a storage, e vai no tile, aparece um erro no distro:

 

[4:4:26.603] [Error - MoveEvents Interface]

[4:4:26.603] data/movements/scripts/betile.lua:onStepIn
[4:4:26.603] Description:
[4:4:26.603] (luaDoPlayerSendTextMessage) Player not found
De resto no script, está funcionando.
Ai vai o script da action:
function onUse(cid, item, fromPosition, itemEx, toPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, storage) <= 0 then
doRemoveItem(item.uid, 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+18597)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
return true
else
doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
end
end
return true
end
Se depois de arrumarem o script, puderem melhorar ele e POR FAVOR, ME EXPLICAR O QUE FOI MODIFICADO E POR QUE!
Grato desde ja!

Editado Agosto 30 por jvcasarin

30 de agosto de 2015 às 04:16
function onUse(cid, item, fromPosition, itemEx, toPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, 18597) <= 0 then
doRemoveItem(item.uid, 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
setPlayerStorageValue(cid, 18597, 1)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
return true
else
doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
return true
end
end
end

Tente assim, caso funcione, foi editado apenas em:

if getPlayerStorageValue(cid, storage) <= 0 then
Por
if getPlayerStorageValue(cid, 18597) <= 0 then

E
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+18597)
Por
setPlayerStorageValue(cid, 18597, 1)

Editado Agosto 30 por AdminGabriel

jvcasarinJ
30 de agosto de 2015 às 04:24

Já ao iniciar o server, aparece esse erro no distro:

 

 

[4:21:10.643] [Error - LuaInterface::loadFile] data/actions/scripts/betile.lua:15: '<eof>' expected near 'end'

[4:21:10.645] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/betile.lua)
[4:21:10.648] data/actions/scripts/betile.lua:15: '<eof>' expected near 'end'

 

30 de agosto de 2015 às 04:40

Editado lá em cima.

SkyLighS
30 de agosto de 2015 às 11:20

moveevents

function onStepIn(cid, item, position, fromPosition)

local config = {
msgDenied = "Você não e vip.",
msgWelcome = "Seja Bem Vindo a Area vip.",
}

local s = 18597


if getPlayerStorageValue(cid, s) - os.time() <= 0 then 
doTeleportThing(cid, fromposition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return true
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
return true
end

actions

function onUse(cid, item, fromPosition, itemEx, toPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, storage) <= 0 then
doRemoveItem(item.uid, 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+18597)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
return true
else
doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
end
end
zipter98Z
30 de agosto de 2015 às 12:37

Apenas postando minha versão dos códigos, caso as acima não funcionem.

Movevent:

local storage = 18597
 
function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then return true end
    if getPlayerStorageValue(cid, storage) <= 0 then
        doPlayerSendCancel(cid, "You're not a VIP player.")
        doTeleportThing(cid, fromPosition)
        doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    else
        doPlayerSendTextMessage(cid, 27, "Welcome to the VIP Area!")        --Faltava o parâmetro responsável pela cor da mensagem.
        doSendMagicEffect(getThingPos(cid), 14)
    end
    return true
end
Action:
local storage = 18597
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if getPlayerStorageValue(cid, storage) <= 0 then
        doRemoveItem(item.uid, 1)
        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
        setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 18597)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
    else
        doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
    end
    --Você colocou um end a mais aqui.
    return true
end

 

Editado Agosto 30 por zipter98

jvcasarinJ
30 de agosto de 2015 às 12:46

Editado lá em cima.

 

Não funcionou... O mesmo erro a cima..

 

 

 

moveevents

function onStepIn(cid, item, position, fromPosition)

local config = {
msgDenied = "Você não e vip.",
msgWelcome = "Seja Bem Vindo a Area vip.",
}

local s = 18597


if getPlayerStorageValue(cid, s) - os.time() <= 0 then 
doTeleportThing(cid, fromposition, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
return true
end
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome)
return true
end

actions

function onUse(cid, item, fromPosition, itemEx, toPosition)
local storage = 18597
 
if getPlayerStorageValue(cid, storage) <= 0 then
doRemoveItem(item.uid, 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+18597)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
return true
else
doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
end
end

 

Não funcionou, está a mesma coisa q o meu código, aparece esse erro ao pisar no tile tendo a storage:

 

[12:39:06.486] [Error - MoveEvents Interface]

[12:39:06.486] data/movements/scripts/betile.lua:onStepIn
[12:39:06.487] Description:
[12:39:06.487] (luaDoPlayerSendTextMessage) Player not found

 

 

 

 

 

Apenas postando minha versão dos códigos, caso as acima não funcionem.

Movevent:

local storage = 18597
 
function onStepIn(cid, item, position, fromPosition)
    if getPlayerStorageValue(cid, storage) <= 0 then
        doPlayerSendCancel(cid, "You're not a VIP player.")
        doTeleportThing(cid, fromPosition)
        doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    else
        doPlayerSendTextMessage(cid, 27, "Welcome to the VIP Area!")        --Faltava o parâmetro responsável pela cor da mensagem.
        doSendMagicEffect(getThingPos(cid), 14)
    end
    return true
end
Action:
local storage = 18597
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
    if getPlayerStorageValue(cid, storage) <= 0 then
        doRemoveItem(item.uid, 1)
        doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
        setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 18597)
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
    else
        doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
    end
    --Você colocou um end a mais aqui.
    return true
end

 

 

 

A mesma coisa para o Kissy kkkk.

 

[12:39:06.486] [Error - MoveEvents Interface]

[12:39:06.486] data/movements/scripts/betile.lua:onStepIn
[12:39:06.487] Description:
[12:39:06.487] (luaDoPlayerSendTextMessage) Player not found

 

 

 

 

 

 

 

 

Explicar melhor:

 

Ao usar o item, eu recebo a storage e tal, e consigo ir no tile q tem X actionid. Quando o player q tem a storage for no tile, ele vai de boa, mas no console aparece esse erro ai a CADA vez que o player pisa no tile.

 

 

 

 

@TODOS - não precisa mais do script de movement n uheuheuhee mas vlw

SkyLighS
30 de agosto de 2015 às 12:49

 

A mesma coisa para o Kissy kkkk.

 

qual sua tag do moveevents.xml ? O action que postei funcionou?

zipter98Z
30 de agosto de 2015 às 12:52

w/e, mesmo você não precisando mais, já editei o código com a correção.

Editado Agosto 30 por zipter98

jvcasarinJ
30 de agosto de 2015 às 13:06

qual sua tag do moveevents.xml ? O action que postei funcionou?

<movement type="StepIn" event="script" value="betile.lua"/>

 

E não, ficou igual o meu script, aparece erro ao pisar.

 

 

w/e, mesmo você não precisando mais, já editei o código com a correção.

 

Como assim? Está falando do movement ou action?

SkyLighS
30 de agosto de 2015 às 15:04

use a tag do moveevents.xml assim

<movevent type="StepIn" uniqueid="18597" event="script" value="betile.lua"/>
jvcasarinJ
30 de agosto de 2015 às 16:26

Esqueci, na tag eu tinha colocado ActionID="13131"

 

 

Alguém me explica o que acontece nesse script?

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local storage = 18597
local days = 30 -- dias que serão adicionados
local timenow = os.time()
local daysvalue = days * 24 * 60 * 60
 
if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
time = timenow + daysvalue
else
time = storage + daysvalue
end
 
doRemoveItem(item.uid, 1)
doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage)+18597)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
local quantity = math.floor((getPlayerStorageValue(cid, storage) - timenow)/(24 * 60 * 60))
return true
else
doSendPlayerCancel(cid, "Voce ja e um Modd Player.")
doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
end
return true
end

Editado Agosto 30 por jvcasarin

SkyLighS
31 de agosto de 2015 às 12:42

 

Alguém me explica o que acontece nesse script?

 

 

adiciona a vip.

Usou a tag do jeito que enviei?

BrunoB
31 de agosto de 2015 às 14:01

@@jvcasarin,

 

Tenta assim, movement:

local storage = 18597

function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return false end
	if getPlayerStorageValue(cid, storage) - os.time() <= 0
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're not a VIP player.") 
		doTeleportThing(cid, fromPosition)
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		return false
	end

	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Welcome to the VIP Area!")
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	return true
end
Action:

local storage = 18597
local days = 30 -- dias que serão adicionados

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local timenow = os.time()
	local daysvalue = days * 24 * 60 * 60
	local timeToAdd = 0

	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		timeToAdd = timenow + daysvalue
	else
		timeToAdd = storage + daysvalue
	end

	doRemoveItem(item.uid, 1)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + timeToAdd)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
	return true
end

Editado Agosto 31 por Bruno Minervino

jvcasarinJ
31 de agosto de 2015 às 16:56

 

adiciona a vip.

Usou a tag do jeito que enviei?

 

Sim usei. Ficou a mesma coisa.

 

 

@@jvcasarin,

 

Tenta assim, movement:

local storage = 18597

function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then return false end
	if getPlayerStorageValue(cid, storage) - os.time() <= 0
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're not a VIP player.") 
		doTeleportThing(cid, fromPosition)
		doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
		return false
	end

	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Welcome to the VIP Area!")
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	return true
end
Action:

local storage = 18597
local days = 30 -- dias que serão adicionados

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local timenow = os.time()
	local daysvalue = days * 24 * 60 * 60
	local timeToAdd = 0

	if getPlayerStorageValue(cid, storage) - os.time() <= 0 then
		timeToAdd = timenow + daysvalue
	else
		timeToAdd = storage + daysvalue
	end

	doRemoveItem(item.uid, 1)
	doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
	setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + timeToAdd)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Parabens, voce se tornou um Modd Player")
	return true
end

 

 

 

Vlw a tentativa, mas continua a mesma coisa... Se o player tem a storage, e pisa no tile, tudo bem, mas aparece esse erro no distro:

 

 

[16:51:56.937] [Error - MoveEvents Interface]

[16:51:56.938] data/movements/scripts/betile.lua:onStepIn
[16:51:56.938] Description:
[16:51:56.938] (luaDoPlayerSendTextMessage) Player not found

 

 

 

Tem como você me explicar como funciona o seu script ai?